package com.kakarote.examine.mapper;

import com.kakarote.core.entity.BasePage;
import com.kakarote.core.servlet.BaseMapper;
import com.kakarote.examine.entity.BO.ExaminePageBO;
import com.kakarote.examine.entity.PO.ExamineRecord;
import com.kakarote.examine.entity.PO.ExamineRecordLog;
import com.kakarote.examine.entity.VO.ExamineAllVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 审核日志表 Mapper 接口
 * </p>
 *
 * @author zhangzhiwei
 * @since 2020-11-19
 */
public interface SuperExamineRecordLogMapper extends BaseMapper<ExamineRecordLog> {

    BasePage<ExamineRecord> selectRecordLogListByUser(BasePage<Object> parse, @Param("data") ExaminePageBO examinePageBO,
                                                      @Param("userId") Long userId, @Param("roleIds") List<Long> roleIds, @Param("sqlMap") Map<String, String> oaSqlMap);

    BasePage<ExamineRecord> selectCopyMeListByUser(BasePage<Object> parse, @Param("data") ExaminePageBO examinePageBO,
                                                   @Param("userId") Long userId, @Param("roleIds") List<Long> roleIds, @Param("sqlMap") Map<String, String> oaSqlMap);

    BasePage<ExamineRecord> selectEndMeListByUser(BasePage<Object> parse, @Param("data") ExaminePageBO examinePageBO,
                                                  @Param("userId") Long userId, @Param("roleIds") List<Long> roleIds, @Param("sqlMap") Map<String, String> oaSqlMap);

    BasePage<ExamineRecord> selectEndAuditListByUser(BasePage<Object> parse, @Param("data") ExaminePageBO examinePageBO,
                                                     @Param("userId") Long userId, @Param("roleIds") List<Long> roleIds, @Param("sqlMap") Map<String, String> oaSqlMap);

    BasePage<ExamineRecord> selectEndFollowListByUser(BasePage<Object> parse, @Param("data") ExaminePageBO examinePageBO,
                                                      @Param("userId") Long userId, @Param("roleIds") List<Long> roleIds, @Param("sqlMap") Map<String, String> oaSqlMap);

    BasePage<ExamineRecord> selectEndToVoidListByUser(BasePage<Object> parse, @Param("data") ExaminePageBO examinePageBO,
                                                      @Param("userId") Long userId, @Param("roleIds") List<Long> roleIds, @Param("sqlMap") Map<String, String> oaSqlMap);

    BasePage<ExamineRecord> selectEndCopyListByUser(BasePage<Object> parse, @Param("data") ExaminePageBO examinePageBO,
                                                    @Param("userId") Long userId, @Param("roleIds") List<Long> roleIds, @Param("sqlMap") Map<String, String> oaSqlMap);

    BasePage<ExamineRecord> selectTrackMeListByUser(BasePage<Object> parse, @Param("data") ExaminePageBO examinePageBO, @Param("userId") Long userId, @Param("roleIds") List<Long> roles, @Param("sqlMap") Map<String, String> oaSqlMap);

    BasePage<ExamineRecord> selectTrackDoListByUser(BasePage<Object> parse, @Param("data") ExaminePageBO examinePageBO, @Param("userId") Long userId, @Param("roleIds") List<Long> roles, @Param("sqlMap") Map<String, String> oaSqlMap);

    BasePage<ExamineRecord> selectTrackCopyListByUser(BasePage<Object> parse, @Param("data") ExaminePageBO examinePageBO, @Param("userId") Long userId, @Param("roleIds") List<Long> roles, @Param("sqlMap") Map<String, String> oaSqlMap);


    List<Map<String, Object>> exportExamineInfo(List<Long> list);

    BasePage<ExamineAllVo> queryAllExamine(BasePage<Object> parse, @Param("data") ExaminePageBO examinePageBO, @Param("sqlMap") Map<String, String> oaSqlMap,@Param("userId") Long userId);

    List<Long> selectRecordId(@Param("userId") Long userId, @Param("roleIds") List<Long> roles, @Param("sql") String sql);
}
